텍스트 전처리(Text Preprocessing)란?

컴퓨터가 텍스트를 이해하기 위한 첫 번째 단계

1부 : 텍스트 전처리의 기본 단계

가장 보편적으로 사용되는 네 가지 기본 전처리 단계를 통해 텍스트를 정제하는 방법을 알아봅니다.

1

정제 (Cleaning)

텍스트에서 분석에 불필요한 노이즈를 제거하는 과정입니다.

  • HTML 태그 제거
    웹에서 수집한 데이터의 <a>, <br> 같은
    태그들을 없애줍니다.
    (예: BeautifulSoup, 정규식 사용)
  • 특수 문자 및 부호 제거
    문장 분석에 불필요한 #, @, $ 같은 기호나
    문장 부호를 제거합니다.
  • 대소문자 통일 (Normalization)
    'Apple'과 'apple'을 컴퓨터가 같은 단어로 인식하도록
    모두 대문자 혹은 소문자로 바꿔줍니다.
2

토큰화 (Tokenization)

정제된 텍스트를 의미 있는 최소 단위인
토큰(token)으로 분절하는 과정입니다.

  • 단어 토큰화
    문장을 공백이나 문장 부호를 기준으로
    단어 단위로 나눕니다.
  • 문장 토큰화
    긴 글(문서)을 마침표(.), 물음표(?) 등을 기준으로
    문장 단위로 나눌 수도 있습니다.
3

불용어 제거 (Stopword Removal)

의미 분석에 큰 도움이 되지 않는,
문법적 기능을 하는 단어들을 제거합니다.

  • 불용어(Stopwords)란?
    은, 는, 이, 가 (한국어), a, the, is (영어) 처럼
    의미는 거의 없지만 자주 등장하는 단어들을 말합니다.
4

단어 형태 통일 (Normalization)

같은 의미를 가진 여러 형태의 단어들을
하나의 기본 형태로 통일
하는 작업입니다.

  • 어간 추출 (Stemming)
    단어의 뒷부분을 규칙에 따라 잘라 원형을 찾습니다.
    (예: studies, studying → studi)
  • 표제어 추출 (Lemmatization)
    단어의 품사 정보를 고려해 사전적인 기본형을 찾습니다.
    (예: studies, studying → study)

2부 : Task 중심의 전처리 전략

모든 상황에 맞는 완벽한 전처리는 없습니다.
내가 풀어야 할 문제와 사용할 모델에 따라 최적의 전략을 선택해야 합니다.

Task 1: 텍스트 분류 (Text Classification) - NLU

문장의 의도나 감성을 파악하여 '스팸/정상', '긍정/부정', '뉴스 카테고리' 등
미리 정해진 범주로 나누는 작업입니다.

전통 모델 (TF-IDF)

단어의 순서(문맥)는 무시하고,
문서 내 출현 빈도를 중심
으로 특징을 추출합니다.

불용어, 조사 등을 적극적으로 제거하여
'영화', '재미', '최고' 같은
핵심 키워드만 남겨 통계적 중요도를 높입니다.

최신 모델 (BERT)

단어의 순서, 주변 단어와의 관계 속에서
동적인 의미를 파악합니다.

'돈 아깝지는 않다'와 같은 미묘한 표현을 이해하기 위해, '않다' 같은 단어나 문장 구조를 보존하는 것이 중요합니다.

Task 2: 기계 번역 (Machine Translation) - NLU & NLG

하나의 언어로 된 문장을 다른 언어의 문장으로
의미와 구조를 유지하며 변환하는 작업입니다.

전통 모델 (SMT)

단어와 구문이 통계적으로 어떻게 대응되는지를 학습합니다. 이를 위해 문장 구조를 단순화하는 것이 중요했습니다.

복잡한 문장 구조를 단순화하고 단어 형태를 통일하여
통계적 패턴을 더 쉽게 학습하도록 유도합니다.

최신 모델 (Transformer)

문장 전체의 의미와 문법적 구조를 벡터로 이해하여 번역합니다. 원문의 뉘앙스를 그대로 전달하는 것이 핵심입니다.

정보 손실을 막기 위해 오타 수정 외에는 거의 원본 그대로를 사용합니다.
문장 부호 하나도 중요한 의미를 가질 수 있습니다.

Task 3: 텍스트 생성 (Generation) - NLG

챗봇 답변, 문서 요약, 소설 창작 등 주어진 조건에 따라
세상에 없던 새로운 문장을 만들어내는 작업입니다.

전통 모델 (RNN)

학습 데이터의 패턴을 모방하여 문장을 생성합니다.
입력 데이터의 일관성이 결과물의 품질에 큰 영향을 미칩니다.

HTML 태그나 특수문자 같은 명백한 노이즈는 제거하되, 문장의 자연스러움을 위해 불용어 등은 남겨두는 경우가 많았습니다.

최신 모델 (GPT)

인간처럼 자연스럽고 창의적인 문장을 만들기 위해,
최대한 많은 언어적 패턴과 뉘앙스를 학습해야 합니다.

"I am not happy"에서 'not'을 제거하면 의미가 반전되듯, 원본을 거의 그대로 사용하여 언어의 모든 측면을 학습합니다.